package metier;

import java.awt.Color;
import java.util.Observable;

/**
 * Classe abstraite représentant un élèment
 *
 * @author Thomas Folgueral
 * @author Julien Pernot
 * @author Guillaume Peyet
 * @author Guillaume Sainthillier
 */
public abstract class Element extends Observable {

    private int longueur;
    private int largeur;
    protected Color couleur;

	public Element(int longueur, int largeur) {
        this.longueur = longueur;
        this.largeur = largeur;
        this.couleur = Color.WHITE;
    }

    /**
     * TODO: Changer cette méthode d'endroit (concerne la partie View) Déssine
     * un élèment
     */
    public void draw() {
    }

    /**
     * Méthode abstraite à redéfinir pour les élèments qui ne sont pas passifs
     *
     * @param c la carte sur laquelle agir
     */
    public void agir(Carte c) {
    }

    /*
     Getters and Setters
     */
    public int getLongueur() {
        return longueur;
    }

    public void setLongueur(int longueur) {
        this.longueur = longueur;
    }

    public int getLargeur() {
        return largeur;
    }

    public void setLargeur(int largeur) {
        this.largeur = largeur;
    }
    
    public Color getCouleur() {
    	return couleur;
    }
}
